package cn.bugstack.domain.strategy.service.armory;

/**
 * @Title: IStrategyDispatch
 * @Author lz
 * @Date 2025/7/25 10:27
 * @description: 策略抽奖调度
 */
public interface IStrategyDispatch {
    /**
     * 获取抽奖策略装配的随机结果
     *
     * @param strategyId 策略ID
     * @return 抽奖结果
     */
    Integer getRandomAwardId(Long strategyId);

    Integer getRandomAwardId(Long strategyId, String ruleWeightValue);

    Integer getRandomAwardId(String key);

    /**
     * 减库存
     *
     * @param strategyId 策略ID
     * @param awardId    奖品ID
     * @return 减库存结果
     */
    Boolean subtractionAwardStock(Long strategyId, Integer awardId);
}
